﻿using System;
using System.Collections.Generic;
using VisionCloud.Domain.Common;

namespace VisionCloud.Domain.DtoModel.Ms
{
    public class MsItemGroupDto
    {
        public string ItemGroup { get; set; }
        //public string ItemGroupImagePath { get; set; }
    }

    public class MsAlgoTempItemDto
    {
        public string MeasureType { get; set; }
        public string TemplateName { get; set; }
    }

    public class MsAlgoTempDto : DtoModelBase
    {
        public Guid AlgorithmParamTemplateGuid { get; set; }
        public string TemplateName { get; set; }
        public string TemplateType { get; set; }
    }

    public class MsAlgoItemDto
    {
        public Guid AlgorithmParamItemGuid { get; set; }
        public Guid AlgorithmParamTemplateGuid { get; set; }
        public string MeasureType { get; set; }
        public string TemplateName { get; set; }
        public string ItemGroup { get; set; }
        public string ItemGroupImagePath { get; set; }
        public string ItemName { get; set; }
        public string ItemKey { get; set; }
        public string ItemValue { get; set; }
        public string ItemType { get; set; }
        public string ItemValueRange { get; set; }
    }

    /// <summary>
    /// 算法配置明细Dto
    /// </summary>
    public class MsAlgorithmParamTemplateItemDto
    {
        /// <summary>
        /// 算法模板Id
        /// </summary>
        public Guid AlgorithmParamTemplateGuid { get; set; }

        public Guid? ProjectId { get; set; }

        /// <summary>
        /// 算法模板名称
        /// </summary>
        public string TemplateName { get; set; }

        /// <summary>
        /// 测量项名称
        /// </summary>
        public string MeasureType { get; set; }

        /// <summary>
        /// 算法分组集合，根据测量项分组
        /// </summary>
        public List<AlgorithmGroup> AlgorithmGroups { get; set; }
    }

    /// <summary>
    /// 算法类型分组
    /// </summary>
    public class AlgorithmGroup
    {
        /// <summary>
        /// 分组名称
        /// </summary>
        public string ItemGroup { get; set; }

        /// <summary>
        /// 分组图片名称
        /// </summary>
        public string ItemGroupImagePath { get; set; }

        /// <summary>
        /// 分组图片Url
        /// </summary>
        public string ItemGroupImageUrl { get; set; }

        /// <summary>
        /// 算法参数集合
        /// </summary>
        public List<ParamSetting> ParamSettings { get; set; }
    }

    /// <summary>
    /// 算法参数
    /// </summary>
    public class ParamSetting
    {
        /// <summary>
        /// 算法模板项Id
        /// </summary>
        public Guid AlgorithmParamItemGuid { get; set; }

        /// <summary>
        /// 参数显示名称
        /// </summary>
        public string ItemName { get; set; }

        /// <summary>
        /// 参数Key值
        /// </summary>
        public string ItemKey { get; set; }

        /// <summary>
        /// 参数值
        /// </summary>
        public string ItemValue { get; set; }

        /// <summary>
        /// 布尔标记
        /// </summary>
        public bool ItemBool { get; set; }

        /// <summary>
        /// 参数类型
        /// </summary>
        public string ItemType { get; set; }

        /// <summary>
        /// 参数范围
        /// </summary>
        public string ItemValueRange { get; set; }
    }

    public class MsAlgorithmTemplateCondition : PageBase
    {
        /// <summary>
        /// 模板主键
        /// </summary>
        public Guid AlgorithmParamTemplateGuid { get; set; }
    }

    public class MsAlgorithmTemplatePageData : PageBase
    {
        /// <summary>
        /// 模板主键
        /// </summary>
        public Guid AlgorithmParamTemplateGuid { get; set; }
    }
}